unit uPopupVisitor ;

interface

uses uGHWReader,
  VirtualTrees,
  Menus,
  ActnList,
  uPopupModule ;

type
  TGHWPopupVisitor = class( TGHWVisitor )
  private
  protected
  public
    Viewer : TVirtualDrawTree ;
  end ;

  TGHWPopupVisitorCol1 = class( TGHWPopupVisitor )
  private
  public
    function Visit( Instance : TGHWHie ) : TObject ; overload ; override ;
    function Visit( Instance : TGHWHieDesign ) : TObject ; overload ; override ;
    function Visit( Instance : TGHWHieInstance ) : TObject ; overload ; override ;
    function Visit( Instance : TGHWHieGenerateFor ) : TObject ; overload ; override ;
    function Visit( Instance : TGHWHieGenerateIf ) : TObject ; overload ; override ;
    function Visit( Instance : TGHWHieSignal ) : TObject ; overload ; override ;
    function Visit( Instance : TGHWSignal ) : TObject ; overload ; override ;
    function Visit( Instance : TGHWSignalArray ) : TObject ; overload ; override ;
    function Visit( Instance : TGHWSignalRecord ) : TObject ; overload ; override ;
  end ;

  TGHWPopupVisitorCol2 = class( TGHWPopupVisitor )
  private
  public
    function Visit( Instance : TGHWHie ) : TObject ; overload ; override ;
    function Visit( Instance : TGHWHieDesign ) : TObject ; overload ; override ;
    function Visit( Instance : TGHWHieInstance ) : TObject ; overload ; override ;
    function Visit( Instance : TGHWHieGenerateFor ) : TObject ; overload ; override ;
    function Visit( Instance : TGHWHieGenerateIf ) : TObject ; overload ; override ;
    function Visit( Instance : TGHWHieSignal ) : TObject ; overload ; override ;
    function Visit( Instance : TGHWSignal ) : TObject ; overload ; override ;
    function Visit( Instance : TGHWSignalArray ) : TObject ; overload ; override ;
    function Visit( Instance : TGHWSignalRecord ) : TObject ; overload ; override ;
  end ;

implementation

uses uGHWVTsim ;

{ TGHWPopupVisitor }

{ TGHWPopupVisitorCol1 }

function TGHWPopupVisitorCol1.Visit( Instance : TGHWHieInstance ) : TObject ;
begin
  Result := nil ;
end ;

function TGHWPopupVisitorCol1.Visit( Instance : TGHWHieGenerateFor ) : TObject ;
begin
  Result := nil ;
end ;

function TGHWPopupVisitorCol1.Visit( Instance : TGHWHie ) : TObject ;
begin
  Result := nil ;
end ;

function TGHWPopupVisitorCol1.Visit( Instance : TGHWHieDesign ) : TObject ;
begin
  Result := nil ;
end ;

function TGHWPopupVisitorCol1.Visit( Instance : TGHWHieGenerateIf ) : TObject ;
begin
  Result := nil ;
end ;

function TGHWPopupVisitorCol1.Visit( Instance : TGHWSignalArray ) : TObject ;
begin
  Result := nil ;
end ;

function TGHWPopupVisitorCol1.Visit( Instance : TGHWSignalRecord ) : TObject ;
begin
  Result := nil ;
end ;

function TGHWPopupVisitorCol1.Visit( Instance : TGHWHieSignal ) : TObject ;
begin
  Result := nil ;
  if assigned( Instance ) and assigned( Instance.Signals ) then
    Result := Instance.Signals.Accept( Self ) ;
end ;

function TGHWPopupVisitorCol1.Visit( Instance : TGHWSignal ) : TObject ;
begin
  Result := nil ;
end ;

{ TGHWPopupVisitorCol2 }

function TGHWPopupVisitorCol2.Visit( Instance : TGHWHieInstance ) : TObject ;
begin
  Result := nil ;
end ;

function TGHWPopupVisitorCol2.Visit( Instance : TGHWHieGenerateFor ) : TObject ;
begin
  Result := nil ;
end ;

function TGHWPopupVisitorCol2.Visit( Instance : TGHWHie ) : TObject ;
begin
  Result := nil ;
end ;

function TGHWPopupVisitorCol2.Visit( Instance : TGHWHieDesign ) : TObject ;
begin
  Result := nil ;
end ;

function TGHWPopupVisitorCol2.Visit( Instance : TGHWHieGenerateIf ) : TObject ;
begin
  Result := nil ;
end ;

function TGHWPopupVisitorCol2.Visit( Instance : TGHWSignalArray ) : TObject ;
begin
  Result := nil ;
  dmPopup.Signal := Instance ;
  dmPopup.Choices := [ fmtHex, fmtDecimal, fmtOctal, fmtBinary ] ;
  if Instance.Count = 18 then
    dmPopup.Choices := dmPopup.Choices + [ fmtPB3, fmtPB6 ] ;
  Result := dmPopup.pumValueFormat ;
end ;

function TGHWPopupVisitorCol2.Visit( Instance : TGHWSignalRecord ) : TObject ;
begin
  Result := nil ;
  dmPopup.Signal := Instance ;
  dmPopup.Choices := [ fmtHex, fmtDecimal, fmtOctal, fmtBinary ] ;
  Result := dmPopup.pumValueFormat ;
end ;

function TGHWPopupVisitorCol2.Visit( Instance : TGHWHieSignal ) : TObject ;
begin
  Result := nil ;
  if assigned( Instance ) and assigned( Instance.Signals ) then
    Result := Instance.Signals.Accept( Self ) ;
end ;

function TGHWPopupVisitorCol2.Visit( Instance : TGHWSignal ) : TObject ;
begin
  Result := nil ;
  dmPopup.Signal := Instance ;
  dmPopup.Choices := Instance.SignalType.Choices ;
  Result := dmPopup.pumValueFormat ;
end ;

end.
